package org.example.myleet.p905;

public class Solution {
    public int[] sortArrayByParity(int[] nums) {
        //双指针，oddI指针是奇数位置，向数组尾移动；end是从数组的尾部向数组头移动，相遇时说明排序完成
        int oddI = 0;
        int end = nums.length - 1;
        while (end > oddI) {
            if ((nums[oddI] & 1) == 0) {
                //oddI遇到不是奇数的位置，向尾部移动直到找到偶数或遇到结尾end指针
                ++oddI;
                continue;
            }
            if ((nums[end] & 1) == 0) {
                //end指针遇到偶数时，与oddI指针交换，完成一对数的排序，然后继续靠近两个指针
                int t = nums[end];
                nums[end] = nums[oddI];
                nums[oddI] = t;
                ++oddI;
            }
            --end;
        }
        return nums;
    }
}
